﻿/**
* jQuery EasyUI 1.3.1
* 
* Licensed under the GPL terms
* To use it on other terms please contact us
*
* Copyright(c) 2009-2012 stworthy [ stworthy@gmail.com ] 
* 
*/
(function ($) {
    function _1(_2) {
        var _3 = $.data(_2, "datebox");
        var _4 = _3.options;
        $(_2).addClass("datebox-f");
        $(_2).combo($.extend({},
		_4, {
		    onShowPanel: function () {
		        _3.calendar.calendar("resize");
		        _4.onShowPanel.call(_2);
		    }
		}));
        $(_2).combo("textbox").parent().addClass("datebox");
        if (!_3.calendar) {
            _5();
        }
        function _5() {
            var _6 = $(_2).combo("panel");
            _3.calendar = $("<div></div>").appendTo(_6).wrap("<div class=\"datebox-calendar-inner\"></div>");
            _3.calendar.calendar({
                fit: true,
                border: false,
                onSelect: function (_7) {
                    var _8 = _4.formatter(_7);
                    _c(_2, _8);
                    $(_2).combo("hidePanel");
                    _4.onSelect.call(_2, _7);
                }
            });
            _c(_2, _4.value);
            var _9 = $("<div class=\"datebox-button\"></div>").appendTo(_6);
            $("<a href=\"javascript:void(0)\" class=\"datebox-current\"></a>").html(_4.currentText).appendTo(_9);
            $("<a href=\"javascript:void(0)\" class=\"datebox-close\"></a>").html(_4.closeText).appendTo(_9);
            _9.find(".datebox-current,.datebox-close").hover(function () {
                $(this).addClass("datebox-button-hover");
            },
			function () {
			    $(this).removeClass("datebox-button-hover");
			});
            _9.find(".datebox-current").click(function () {
                _3.calendar.calendar({
                    year: new Date().getFullYear(),
                    month: new Date().getMonth() + 1,
                    current: new Date()
                });
            });
            _9.find(".datebox-close").click(function () {
                $(_2).combo("hidePanel");
            });
        };
    };
    function _a(_b, q) {
        _c(_b, q);
    };
    function _d(_e) {
        var _f = $.data(_e, "datebox").options;
        var c = $.data(_e, "datebox").calendar;
        var _10 = _f.formatter(c.calendar("options").current);
        _c(_e, _10);
        $(_e).combo("hidePanel");
    };
    function _c(_11, _12) {
        var _13 = $.data(_11, "datebox");
        var _14 = _13.options;
        $(_11).combo("setValue", _12).combo("setText", _12);
        _13.calendar.calendar("moveTo", _14.parser(_12));
    };
    $.fn.datebox = function (_15, _16) {
        if (typeof _15 == "string") {
            var _17 = $.fn.datebox.methods[_15];
            if (_17) {
                return _17(this, _16);
            } else {
                return this.combo(_15, _16);
            }
        }
        _15 = _15 || {};
        return this.each(function () {
            var _18 = $.data(this, "datebox");
            if (_18) {
                $.extend(_18.options, _15);
            } else {
                $.data(this, "datebox", {
                    options: $.extend({},
					$.fn.datebox.defaults, $.fn.datebox.parseOptions(this), _15)
                });
            }
            _1(this);
        });
    };
    $.fn.datebox.methods = {
        options: function (jq) {
            return $.data(jq[0], "datebox").options;
        },
        calendar: function (jq) {
            return $.data(jq[0], "datebox").calendar;
        },
        setValue: function (jq, _19) {
            return jq.each(function () {
                _c(this, _19);
            });
        }
    };
    $.fn.datebox.parseOptions = function (_1a) {
        var t = $(_1a);
        return $.extend({},
		$.fn.combo.parseOptions(_1a), {});
    };
    $.fn.datebox.defaults = $.extend({},
	$.fn.combo.defaults, {
	    panelWidth: 180,
	    panelHeight: "auto",
	    keyHandler: {
	        up: function () { },
	        down: function () { },
	        enter: function () {
	            _d(this);
	        },
	        query: function (q) {
	            _a(this, q);
	        }
	    },
	    currentText: "Today",
	    closeText: "Close",
	    okText: "Ok",
	    formatter: function (_1b) {
	        var y = _1b.getFullYear();
	        var m = _1b.getMonth() + 1;
	        var d = _1b.getDate();
	        return m + "/" + d + "/" + y;
	    },
	    parser: function (s) {
	        var t = Date.parse(s);
	        if (!isNaN(t)) {
	            return new Date(t);
	        } else {
	            return new Date();
	        }
	    },
	    onSelect: function (_1c) { }
	});
})(jQuery);